package servicos.persistencia;

/**
 * Importação das bibliotecas necessárias para a implementação da classe.
 */
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.ResourceBundle;

	/**
	 * @author Filipe Barbosa de Almeida - 09/0006097
	 */
	public class Atualizacao extends Thread {
    
    /**
     * Declaraçao dos Atributos da Classe Atualização
     */
    private String acao;
    private static ResourceBundle myResources;
    private static String resultado;
    private static String vetor[];
    private static String valor[];
    private static int tamanho1;
    private static int tamanho2;
    private static int tamanho3;
	 
	 /** Metodo para atualização dos dados do Ativo
	  * @param String acao -  Recebe o nome do Ativo
	  */
                 
    @Override
	public void run(){
    
	while(true){ 

      if(Thread.interrupted() == true){
            break;
        }

        /**
        * Atributos para Manipulação da Data
        */ 
        Date agora = new Date();
        DateFormat data = DateFormat.getDateInstance(DateFormat.FULL);	
        SimpleDateFormat yyyyMMdd = new SimpleDateFormat("yyyy-MM-dd"); 
        SimpleDateFormat MMddyyyy = new SimpleDateFormat("MM/dd/yyyy");
        String dataFinal;
        dataFinal = yyyyMMdd.format(agora);
        try {
            
        URL url = new URL("http://download.finance.yahoo.com/d/quotes.csv?s=" + acao + "&f=sl1d1t1c1ohgv&e=.csv"); // Exemplo: "http://download.finance.yahoo.com/d/quotes.csv?s=MMXM3.SA&f=sl1d1t1c1ohgv&e=.csv"
        URLConnection yahooConnection = url.openConnection();

        BufferedReader dado;
        dado = new BufferedReader(new InputStreamReader(yahooConnection.getInputStream()));
        String inputLine;

        while ((inputLine = dado.readLine()) != null) {

            resultado=inputLine;

            vetor = resultado.split(",");
            this.tamanho1 = vetor[0].length();
            this.tamanho2 = vetor[2].length();
            this.tamanho3 = vetor[3].length();
            }
            
                /**
                * Inserção dos atributos da ação no banco de dados.
                */
               Transacao.abrir();

            String sql = "INSERT INTO acao (nome,maxima,minima,tempo,valorAtual,variacao) "
                    + "VALUES ( "
                    + "'"
                    +vetor[0].substring(1,tamanho1 - 1)
                    + "', "
                    + "'"
                    + vetor[6]
                    + "', "
                    + "'"
                    + vetor[7]
                    + "', "
                    + "'"
                    + dataFinal
                    + "', "
                    + "'"
                    + vetor[1]
                    + "', "
                    + "'"
                    + vetor[4]
                    + "') ";

            System.out.println(sql);
            Transacao.executar(sql);
            Transacao.commit();

            dado.close();
            sleep(10000);
                        
        } catch (Exception ex) {
            Logger.getLogger(Atualizacao.class.getName()).log(Level.SEVERE, null, ex);
        }
	}
    }	
}
/**
 * Fim da Classe atualização
 */
